/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufc.quixada.adrs.service;

import br.ufc.quixada.adrs.dao.MovimentacaoDAO;
import br.ufc.quixada.adrs.model.Movimentacao;
import br.ufc.quixada.adrs.util.Msg;
import java.sql.SQLException;
import java.util.List;
import org.slf4j.LoggerFactory;

/**
 *
 * @author Caio
 */
public class MovimentacaoService {

    private final MovimentacaoDAO dao = new MovimentacaoDAO();

    public boolean insertMovimentacao(Movimentacao movimentacao) {
        try {
            dao.insert(movimentacao);
            return true;
        } catch (SQLException ex) {
            LoggerFactory.getLogger(this.getClass()).error(Msg.EXCEPTION_MESSAGE, this.getClass().getSimpleName(), ex);
        }
        return false;
    }

    public boolean updateMovimentacao(Movimentacao movimentacao) {
        try {
            dao.update(movimentacao);
            return true;
        } catch (SQLException ex) {
            LoggerFactory.getLogger(this.getClass()).error(Msg.EXCEPTION_MESSAGE, this.getClass().getSimpleName(), ex);
        }
        return false;
    }

    public boolean deleteMovimentacao(Long id) {
        try {
            dao.delete(id);
            return true;
        } catch (SQLException ex) {
            LoggerFactory.getLogger(this.getClass()).error(Msg.EXCEPTION_MESSAGE, this.getClass().getSimpleName(), ex);
        }
        return false;
    }

    public Movimentacao getMovimentacaoById(Long id) {
        try {
            Movimentacao m = dao.getById(id);
            if (m != null) {
                return m;
            }
        } catch (SQLException ex) {
            LoggerFactory.getLogger(this.getClass()).error(Msg.EXCEPTION_MESSAGE, this.getClass().getSimpleName(), ex);
        }
        return null;
    }

    public List<Movimentacao> getMovimentacoesByQuantitativoId(Long id) {
        try {
            List<Movimentacao> movimentacoes = dao.getByQuantitativoId(id);
            return movimentacoes;
        } catch (SQLException ex) {
            LoggerFactory.getLogger(this.getClass()).error(Msg.EXCEPTION_MESSAGE, this.getClass().getSimpleName(), ex);
        }
        return null;
    }

    public List<Movimentacao> getAllMovimentacoes() {
        try {
            List<Movimentacao> movimentacoes = dao.getAll();
            return movimentacoes;
        } catch (SQLException ex) {
            LoggerFactory.getLogger(this.getClass()).error(Msg.EXCEPTION_MESSAGE, this.getClass().getSimpleName(), ex);
        }
        return null;
    }

    List<Movimentacao> getMovimentacoesByQuestionarioQuantitativoId(Long id) {
        return getMovimentacoesByQuantitativoId(id);
    }
}
